package elion.com.theElion.util;

import java.lang.reflect.Field;

/**
 * Created by Alex on 2017/5/26.
 * 用户获取类中的属性名
 */

public class ClassAttrsName {


    public static String[] getAttrsName(Object object) {
        Class example = object.getClass();
        Field[] fields = example.getDeclaredFields();
        /** 可能是JDK版本不一样，1.6中只返回属性名数组，当期那版本中会多返回 $change 和  serialVersionUID
         * 貌似该版本的JDK还会对根据元素名进行排序ascii小的在前
         * 所以在使用该方法时最好先进行测试，看看数组中的元素到底是什么顺序
         * 再使用可变参数的构造函数对数组进行初始化
         */
        int n = fields.length;
        String[] names = new String[n];
        for (int i = 0; i < n; i++) {
//            System.out.println(fields[i].getName());
            names[i] = fields[i].getName();
        }
        return names;
    }
}
